package com.broadengate.dao;

import java.util.List;
import java.util.Map;

import org.springframework.dao.DataIntegrityViolationException;

import com.broadengate.bean.ContractInfo;
import com.broadengate.view.model.BillModel;
import com.broadengate.view.model.ContractModel;

public interface ContractDao<T> extends BaseDao<T>
{
    
    public ContractInfo queryContractById(int contractId);
    
    public ContractInfo queryContractByPo(String po);
    
    public List<T> search(ContractModel model);
    
    public void updateContractInfo(ContractModel model);
    
    public void addContractInfo(ContractModel model) throws DataIntegrityViolationException;
    
    public void delContracts(String contractid);
    
    public void addBillInfo(BillModel model);
    
    public void delbillInfos(String id);
    
    /**
     * <一句话功能简述>
     * <功能详细描述>
     * @param po
     * @throws Exception [参数说明]
     * 
     * @return void [返回类型说明]
     * @exception throws [违例类型] [违例说明]
     * @see [类、类#方法、类#成员]
     */
    public void updateContractRelated(Map param) throws Exception;
    
}
